const EventEmitter = require("events");

const emitter = new EventEmitter();

emitter.on("listener1", () => {});
emitter.on("listener1", () => {});

emitter.on("listener2", () => {});
emitter.on("listener2", () => {});

// once: 只监听一次
emitter.once("listener3", () => {});

// prependListener: 在最前面添加监听
emitter.prependListener("listener4", () => {});

// 1. .获取所有监听事件的名称
console.log("获取所有监听事件的名称", emitter.eventNames());

// 2. .获取监听最大的监听个数
console.log("获取监听最大的监听个数", emitter.getMaxListeners());

// 3. .获取某个事件的监听个数
console.log("获取某个事件的监听个数", emitter.listenerCount("listener1"));

// 4. .监听某个事件(数组)
console.log("监听某个事件", emitter.listeners("listener1"));

// 5.移除所有的事件监听
// 不传递参数的情况下, 移除所有事件名称的所有事件监听
// 在传递参数的情况下, 只会移除传递的事件名称的事件监听
emitter.removeAllListeners("listener1");

// 6. 移除某个事件名称的某个事件监听
emitter.removeListener("listener1", () => {});
emitter.off("listener1", () => {});
